AWS EC2(Linux)上に構築したJupyterHubで標準バージョン以外のPythonを実行できるようにしたい
データアナリティクス事業本部の荒木です。
AWS EC2(Linux)上記に構築したJupyterHubにEC2に標準でインストールされているPython3.7以外のPythonを実行する方法についてまとめます。
環境
- OS:Amazon Linux release 2 (Karoo)
- 標準バージョン:Python3.7.16
- 追加するバージョン:Python3.10.13
本題
Pythonのインストール
ライブラリのインストール
Python3.10.13のインストールの前に、以下のライブラリがインストールされていることを確認します。 インストールされていない場合は、インストールします。 ※インストールされていないとipykernelをインストールでエラーになります。
sudo yum install libffi-devel sudo yum install sqlite-devel
また、公式のソースコードのダウンロードページからダウントードした際にファイルを解凍するために必要なライブラリもインストールされていること確認し、無ければインストールします。
sudo yum install zlib-devel
OpenSSL 1.1.1のインストール
python3.10.xではOpenSSL 1.1.1が必須なためインストールする必要があります。
sudo yum install -y openssl11 openssl11-devel
Python3.10.13のインストール
必要なライブラリをインストールしたらPythonをインストールします。
sudo wget https://www.python.org/ftp/python/3.10.13/Python-3.10.13.tgz sudo tar xzf Python-3.10.13.tgz cd Python-3.10.13 sudo ./configure --enable-optimizations sudo make altinstall python3.10 -V pip3.10 -V
※ここでライブラリをインストールしておらず、pipがうまくインストールされずにはまりました。。
ipykernelのインストール・アクティベート
追加したいバージョンのPythonをインストールしたら、ipykernelのインストールとアクティベートを行います。
ipykernelのインストール
- JupyterHubにログインし、ターミナルを開きます。
-
以下コマンドを実行しipykernelをインストールします。
pip3.10 install ipykernel
-
以下のコマンドでpython3.10のipykernelをアクティベートします。
python3.10 -m ipykernel install --user --name python310
-
ログインし直すと新しいバージョンのipykernelのノートブックなどが作成されています。
-
バージョンを確認するとpython3.10になっています。
まとめ
ipykernelのアクティベートがユーザー単位でしかできず、ユーザー毎にアクティベートする必要がありました。 システム全体でアクティベートできる方法があるのか検討中です。。
参考になれば幸いです。